import { IotAttr } from "./IotAttr";

/**
 * 设备分组，产品分类，定义设备所属的产品
 */
export interface IotDeviceGroup {
  id?: number;
  // 分组名称
  groupName?: string;
  isEnable?: boolean;
  // 分组编码
  groupCode?: number;
  // 分组描述
  groupDesc?: string;
  // 关联的属性
  rltAttrs?: IotAttr[];
  // 关联的物模型分类
  sensorGroups?: IotSensorGroup[];
  sensorGroupIds?: number[];
  attrIds?: number[];
}

export interface IotSensorGroup {
  id: number;
  // 分组名称
  groupName: string;
  // 分组编码
  groupCode: string;
  // 分组类型
  groupType: number;
  // 分组描述
  groupDesc: string;
}

export interface IotDevice {
  id?: number;
  // 设备分组
  groupId?: number;
  // 设备分类编码
  dtCode?: number;
  // 终端id
  terminalId?: string;
  // 排序号
  orderNo?: number;
  // 设备名称
  deviceName?: string;
  // 设备ID
  deviceCode?: number;
  // 产品管理
  deviceType?: string;
  // 属性信息
  attrs?: IotDeviceRltAttr[];
  // 设备分组
  group: IotDeviceGroup; //
  deviceAttr?: any;
}

export interface IotDeviceRltAttr {
  // 设备id
  deviceId?: number;
  // 属性id
  attrId?: number;
  // 属性名称
  attrName?: string;
  // 属性编码
  attrCode?: string;
  // 属性值
  attrValue?: string;
}

// 设备配置
export interface IotDeviceConfig {
  // dtcode
  dtCode: number;
  // 报警频率
  frequency: number;
  // 设备离线时间
  offlineSpan: number;
  // 历史数据保存间隔
  saveSpan: number;
  alarmConfigs: IotAlarmConfig[];

  // 加脂机的配置，单独处理json
  greaseConfig: string;
}

// 报警配置
export interface IotAlarmConfig {
  // stcode
  stCode: number;
  // 是否启用报警
  enabled: boolean;
  // 预警开始值
  warningValue: number;
  // 报警开始值
  alarmValue: number;
  //
  sensorGroup: IotSensorGroup;
}
